From: Georges Basile Stavracas Neto Date: Wed, 23 Sep 2020 19:48:43 +0000 (-0300) Subject: appDisplay: Factor out linear position calculation X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~655^2^2~15 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=bfd4d0f7aa57bce6bfe9ec5b54c1281ef06684f3;p=gnome-shell.git appDisplay: Factor out linear position calculation When adding an item to the app grid, the item is added to a sorted array. This is calculated by adding all visible items in pages before the one being modified. Future commits will need this to move items without reparenting them, so factor this code into a separate function. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index f9e6a9b7d..9094fcf03 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -514,15 +514,10 @@ var BaseAppView = GObject.registerClass({ return -1; } - _addItem(item, page, position) { + _getLinearPosition(page, position) { let itemIndex = 0; if (this._grid.nPages > 0) { - // Append icons to the first page with empty slot, starting from - // the second page - if (this._grid.nPages > 1 && page === -1 && position === -1) - page = this._findBestPageToAppend(); - const realPage = page === -1 ? this._grid.nPages - 1 : page; itemIndex = position === -1 @@ -535,6 +530,17 @@ var BaseAppView = GObject.registerClass({ } } + return itemIndex; + } + + _addItem(item, page, position) { + // Append icons to the first page with empty slot, starting from + // the second page + if (this._grid.nPages > 1 && page === -1 && position === -1) + page = this._findBestPageToAppend(); + + const itemIndex = this._getLinearPosition(page, position); + this._orderedItems.splice(itemIndex, 0, item); this._items.set(item.id, item); this._grid.addItem(item, page, position);